# 作者： 李泉志
# 2025年01月07日11时44分秒
# 2947029073@qq.com

"""
04. 函数的递归
函数调用自身的编程技巧称为递归
4.1 递归函数的特点
特点
• 一个函数内部调用自己
    – 函数内部可以调用其他函数，当然在函数内部也可以调用自己
代码特点
1. 函数内部的代码是相同的，只是针对参数不同，处理的结果不同
2. 当参数满足一个条件时，函数不再执行
    – 这个非常重要，通常被称为递归的出口，否则会出现死循环！
"""


def sum_numbers(num):
    print(num)
    # 递归的出口很重要，否则会出现死循环
    if num == 1:
        return
    sum_numbers(num - 1)


# 如果有n个台阶，每次只能走1个，或者2个台阶，到第n个台阶有多少种走法？
def steps(n):
    if n == 1 or n == 2:
        return n
    else:
        return steps(n - 1) + steps(n - 2)


if __name__ == '__main__':
    # sum_numbers(3)
    print(steps(10))
